package com.bifang.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data;

/**
 * 系统用户核心表
 *
 * @author chenzh
 * @since 2020-06-17
 */
@Data
public class UserVO extends BasePageVO {

    @ApiModelProperty(value = "用户id")
    private String userId;

    @ApiModelProperty(value = "用户名 应用账号可以使用工号等唯一标识")
    private String userName;

    @ApiModelProperty(value = "密码")
    private String userPassword;

    @ApiModelProperty(value = "是否随机生成密码 0 否 1是")
    private String passwordType;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "手机")
    private String cellphone;

    @ApiModelProperty(value = "姓名")
    private String fullName;

    @ApiModelProperty(value = "证件类型")
    private String cardType;

    @ApiModelProperty(value = "证件号码")
    private String idcard;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "有效状态 0 禁用 1启用")
    private String status;

    @ApiModelProperty(value = "用户类型")
    private String userType;

    @ApiModelProperty(value = "用户类型 中文")
    private String userTypeName;

    @ApiModelProperty(value = "用户主机mac地址")
    private String userMacaddr;

    @ApiModelProperty(value = "用户ip")
    private String userIp;

    @ApiModelProperty(value = "排列顺序")
    private Integer orderNo;

    @ApiModelProperty(value = "逻辑删除标志 0 正常 1 删除")
    private String del;

    @ApiModelProperty(value = "单位账号所属单位id")
    private String orgId;

    @ApiModelProperty(value = "单位编码")
    private String orgCode;

    @ApiModelProperty(value = "单位名称")
    private String orgName;

    @ApiModelProperty(value = "接入应用账号所属应用id")
    private String clientId;

    @ApiModelProperty(value = "接入应用名称")
    private String appName;

    @ApiModelProperty(value = "昵称")
    private String nikeName;

    @ApiModelProperty(value = "头像文件id")
    private String avatarShowId;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "性别中文")
    private String sexName;

    @ApiModelProperty(value = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "地址详细信息")
    private String addressDetail;

    @ApiModelProperty(value = "头像路径")
    private String photoPath;

    @ApiModelProperty(value = "办公室电话")
    private String officePhone;

    @ApiModelProperty(value = "短号")
    private String shortPhone;

    @ApiModelProperty(value = "姓名拼音全拼")
    private String spellAll;

    @ApiModelProperty(value = "姓名首字母全拼")
    private String spellFirst;

    @ApiModelProperty(value = "注册日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date regdate;

    @ApiModelProperty(value = "注册类型：登录自动注册，批量注册等")
    private String regType;

    @ApiModelProperty(value = "注册类型 中文")
    private String regTypeName;

    @ApiModelProperty(value = "登入类型")
    private String loginType;

    @ApiModelProperty(value = "登入类型 中文")
    private String loginTypeName;

    @ApiModelProperty(value = "第三方id")
    private String openId;

    @ApiModelProperty(value = "是否授权 1 是 0 否")
    private String grantFlag;

    @ApiModelProperty(value = "是否实人认证：0 否 1 是")
    private String realFlag;

    @ApiModelProperty(value = "上级领导用户id")
    private String supId;

    @ApiModelProperty(value = "上级领导姓名")
    private String supName;

    @ApiModelProperty(value = "国家/地区")
    private String country;

    @ApiModelProperty(value = "人员id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long personId;

    @ApiModelProperty(value = "是否可编辑 0 否 1 是")
    private String fixed;

    @ApiModelProperty(value = "table行是否可以编辑")
    private Boolean disabled;

    @ApiModelProperty(value = "新增账号规则：userType：用户类型唯一 org：组织内唯一 client：应用内唯一")
    private String addType;

    @ApiModelProperty(value = "是否根据用户信息更新personinfo里面的手机号码等信息，默认为true")
    private String updatePersonFlag;

    @ApiModelProperty(value = "是否新增personinfo里面不存在的人员，默认为true")
    private String insertPersonFlag;
}
